#测试对象的引用赋值、浅拷贝、深拷贝
import copy

class MobilePhone:
  def __init__(self,cpu):
    self.cpu = cpu

class CPU:
  pass

c = CPU()
m = MobilePhone(c)

print("----浅拷贝-------")
m2 = copy.copy(m)  #m2是新拷贝的另一个手机对象
print("m：",id(m))
print("m2：",id(m2))
print("m的cpu：",id(m.cpu))
print("m2的cpu：",id(m2.cpu))  #m2和m拥有了一样的cpu对象
print("----深拷贝--------")
m3 = copy.deepcopy(m)
print("m：",id(m))
print("m3：",id(m3))
print("m的cpu：",id(m.cpu))
print("m3的cpu：",id(m3.cpu))  #m3和m拥有不一样的cpu对象

# ----浅拷贝-------
# m： 2938246692944
# m2： 2938214648080
# m的cpu： 2938215543008
# m2的cpu： 2938215543008
# ----深拷贝--------
# m： 2938246692944
# m3： 2938246710288
# m的cpu： 2938215543008
# m3的cpu： 2938246710608
